home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 013 / nmove586.arc / MESSAGES.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-01-01  |  2.3 KB  |  102 lines

  1.      TITLE    MESSAGES
  2.     
  3.  
  4.  
  5. ;Routines
  6.  
  7.     public    ERROR_TABLE,ERROR_ROUTINE,NOT_IN_TABLE,N1
  8.  
  9. ;Variables
  10.  
  11.     public    INVALID_DRIVE_SPECIFIER,FILE_NOT_FOUND,NOT_ABLE_TO_MOVE
  12.     public    PARSE_ERROR,INVALID_PATH,FILE_ALREADY_HERE,NO_PARAMETERS
  13.     public    INSUFFICIENT_SPACE,OPEN_ERROR,CREATE_ERROR,ACCESS_DENIED
  14.     public    DATE_TIME_ERROR,CLOSE_ERROR,DELETE_ERROR,TO_BIG
  15.  
  16. CR        EQU    0DH
  17. LF        EQU    0AH
  18. DISPLAY_STRING    EQU    9
  19.  
  20. G    GROUP    CODE
  21. CODE    SEGMENT    PUBLIC
  22.     ASSUME    CS:G, DS:G, ES:G, SS:G
  23.  
  24. INVALID_DRIVE_SPECIFIER    DB "Invalid drive specifier",CR,LF,"$"
  25. FILE_NOT_FOUND        DB "File not found",CR,LF,"$"
  26. NOT_ABLE_TO_MOVE    DB "Can not move the file",CR,LF,"$"
  27. PARSE_ERROR        DB "Parsing error",CR,LF,"$"
  28. INVALID_PATH        DB "Invalid path",CR,LF,"$"
  29. FILE_ALREADY_HERE    DB "File already exists",CR,LF,"$"
  30. NO_PARAMETERS        DB "no parameters",CR,LF,"$"
  31. INSUFFICIENT_SPACE    DB "Insufficient disk space",CR,LF,"$"
  32. OPEN_ERROR        DB "Open error.",CR,LF,"$"
  33. CREATE_ERROR        DB "Create error",CR,LF,"$"
  34. ACCESS_DENIED        DB "Access denied",CR,LF,"$"
  35. DATE_TIME_ERROR        DB "Date time error",CR,LF,"$"
  36. CLOSE_ERROR        DB "Close error",CR,LF,"$"
  37. DELETE_ERROR        DB "Delete error",CR,LF,"$"
  38. TO_BIG            DB "File name to big",cr,lf,"$"
  39.  
  40. ERROR_TABLE:
  41.     DW INVALID_DRIVE_SPECIFIER    ; 1
  42.     DW INVALID_PATH            ; 2
  43.     DW NOT_ABLE_TO_MOVE        ; 3
  44.     DW PARSE_ERROR            ; 4
  45.     DW ACCESS_DENIED        ; 5
  46.     DW FILE_ALREADY_HERE        ; 6
  47.     DW NO_PARAMETERS        ; 7
  48.     DW INSUFFICIENT_SPACE        ; 8
  49.     DW OPEN_ERROR            ; 9
  50.     DW CREATE_ERROR            ; 10
  51.     DW FILE_NOT_FOUND        ; 11
  52.     DW DATE_TIME_ERROR        ; 12
  53.     DW CLOSE_ERROR            ; 13
  54.     DW DELETE_ERROR            ; 14
  55.     DW TO_BIG            ; 15
  56.  
  57. LAST_ERROR    EQU    15
  58.  
  59. ;--------------------------------------------------------------------
  60.  
  61. ERROR_ROUTINE    PROC
  62. ; Given the error code in al, print its error message.
  63. ; call: al = error code or sometimes ah = error code
  64. ;    error_table -> the error table
  65.  
  66.     CMP    AL, 1
  67.     JB    NOT_IN_TABLE
  68.     CMP    AL, LAST_ERROR
  69.     JA    NOT_IN_TABLE
  70.  
  71.     XOR    AH, AH
  72.     DEC    AL
  73.     SHL    AX, 1
  74.     MOV    BX, OFFSET G:ERROR_TABLE
  75.     ADD    BX, AX
  76.  
  77.     MOV    DX, [BX]
  78.     MOV    AH, DISPLAY_STRING
  79.     INT    21H
  80.  
  81.     RET
  82.  
  83. NOT_IN_TABLE:
  84.     CMP    AL, 0FFH
  85.     JZ    N1
  86.  
  87.     CMP    AH, 0FFH
  88.     JZ    N1
  89.  
  90.     RET
  91.  
  92. N1:
  93.     MOV    AL, 1
  94.     JMP    ERROR_ROUTINE
  95. ERROR_ROUTINE    ENDP
  96.  
  97. ;--------------------------------------------------------------------
  98.  
  99. CODE    ENDS
  100.     END
  101.  
  102.